cmake_minimum_required(VERSION 3.10)
project(FFNNeuralNetwork)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Add source files
add_library(FFNNeuralNetwork STATIC
    src/Connection.cpp
    src/Neuron.cpp
    src/NeuronLayer.cpp
    src/NeuronManager.cpp
    src/NeuralNetwork.cpp
    ../common/src/ActivationFunction.cpp
    ../common/src/LossFunction.cpp
)

# Include directories
target_include_directories(FFNNeuralNetwork PRIVATE ${PROJECT_SOURCE_DIR}/include
                                                   ${PROJECT_SOURCE_DIR}/../common/include
)

# Enable testing
enable_testing()
add_subdirectory(test)